﻿Imports System.Resources
Imports System.Threading
Imports Biz
Imports BLL
Imports DevComponents.DotNetBar


Public Class ctrlNuevoMedios_Busqueda
    Private _llamador As frmMainMetro
    Private _bAlta As Boolean
    Private _oMedio_Busqueda As cMedios_Busqueda
    Private _RM As ResourceManager


    Public Sub SetIdioma()

        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        btnAceptar.Text = _RM.GetString("btnAceptar")
        btnCancelar.Text = _RM.GetString("btnCancelar")

        lblCodigo.Text = _RM.GetString("strCodigo") + ":"
        lblDescripcion.Text = _RM.GetString("strDescripcion") + ":"
        lblTipoMedio.Text = _RM.GetString("strTipoMedio") + ":"

        lblTituloForm.Text = _RM.GetString("strNuevoMedioBusqueda")

    End Sub

    Public Property Llamador() As frmMainMetro
        Get
            Return _llamador
        End Get
        Set(value As frmMainMetro)
            _llamador = value
        End Set
    End Property

    Private Sub btnCancelar_Click(sender As Object, e As EventArgs) Handles btnCancelar.Click
        _llamador.CloseModalPanel(Me, DevComponents.DotNetBar.Controls.eSlideSide.Left)
    End Sub

    Public Sub CargarComboTipoMedio()
        Dim oTipoMedio As cTipo_Medio_Busqueda
        Dim colObjetos As Collection
        Dim cmbItem As ComboBoxItem


        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        cmbTipoMedio.BeginUpdate()

        cmbTipoMedio.Items.Clear()

        cmbItem = New ComboBoxItem

        cmbItem.Tag = ""
        cmbItem.Text = _RM.GetString("strComboSeleccioneItem")

        cmbTipoMedio.Items.Add(cmbItem)

        Try
            colObjetos = GestorTipo_Medio_Busqueda.Instance.Consultar

            If Not colObjetos Is Nothing Then

                For Each oTipoMedio In colObjetos

                    cmbItem = New ComboBoxItem

                    cmbItem.Tag = oTipoMedio.TMedB_Codigo
                    cmbItem.Text = oTipoMedio.TMedB_Descrip

                    cmbTipoMedio.Items.Add(cmbItem)
                Next
            End If

            cmbTipoMedio.SelectedIndex = 0

        Catch ex As Excepciones.Tipo_Medio_BusquedaFalloConsultar
            Main.ManejarExcepcion(ex)
        Catch ex As Exception
            Main.ManejarExcepcion(ex)
        End Try

        cmbTipoMedio.EndUpdate()

    End Sub

    Private Function ValidarForm() As Boolean
        Dim bValido As Boolean = True

        If txtDescripcion.Text.Trim = "" Then bValido = False
        If cmbTipoMedio.SelectedIndex <= 0 Then bValido = False

        ValidarForm = bValido

    End Function

    Public Sub MostrarParaAlta()
        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        _bAlta = True

        lblTituloForm.Text = _RM.GetString("strNuevoMedioBusqueda")
        lblMensajes.Text = ""

        _oMedio_Busqueda = Nothing

        LlenarForm(Nothing)

        txtDescripcion.Focus()

    End Sub

    Public Sub MostrarParaEdicion(oMedioBusqueda As cMedios_Busqueda)
        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        _bAlta = False

        lblTituloForm.Text = _RM.GetString("strEditarMedioBusqueda")
        lblMensajes.Text = ""

        _oMedio_Busqueda = oMedioBusqueda

        LlenarForm(oMedioBusqueda)

        txtDescripcion.Focus()

    End Sub

    Private Sub LlenarForm(oAux As cMedios_Busqueda)

        If Not oAux Is Nothing Then
            lblMedB_Codigo.Text = oAux.MedB_Codigo
            txtDescripcion.Text = oAux.MedB_Descrip
            PosicionarCombo(cmbTipoMedio, oAux.Tipo_Medio_Busqueda.TMedB_Codigo)
        Else
            lblMedB_Codigo.Text = "(...)"
            txtDescripcion.Text = ""
        End If

    End Sub

    Private Sub PosicionarCombo(cmbAux As Object, sTag As String)
        Dim cmbItem As DevComponents.DotNetBar.ComboBoxItem

        If cmbAux.Items.Count > 1 Then
            For Each cmbItem In cmbTipoMedio.Items
                If cmbItem.Tag = sTag Then
                    cmbAux.SelectedItem = cmbItem
                End If
            Next
        End If

    End Sub

    Private Sub btnAceptar_Click(sender As Object, e As EventArgs) Handles btnAceptar.Click
        Dim oAux As cMedios_Busqueda
        Dim cmbItem As DevComponents.DotNetBar.ComboBoxItem


        If ValidarForm() Then
            If _bAlta Then
                oAux = New cMedios_Busqueda
                oAux.MedB_Codigo = 0
                oAux.MedB_Descrip = txtDescripcion.Text
                cmbItem = cmbTipoMedio.SelectedItem
                oAux.Tipo_Medio_Busqueda.TMedB_Codigo = Utils.Convert.ToInt16(cmbItem.Tag)

                Try
                    GestorMedios_Busqueda.Instance.Ingresar(oAux)

                Catch ex As Excepciones.Medios_BusquedaFalloAlta
                    Main.ManejarExcepcion(ex)
                Catch ex As Exception
                    Main.ManejarExcepcion(ex)
                End Try

            Else
                oAux = New cMedios_Busqueda
                oAux.MedB_Codigo = lblMedB_Codigo.Text
                oAux.MedB_Descrip = txtDescripcion.Text
                cmbItem = cmbTipoMedio.SelectedItem
                oAux.Tipo_Medio_Busqueda.TMedB_Codigo = Utils.Convert.ToInt16(cmbItem.Tag)

                Try
                    GestorMedios_Busqueda.Instance.Editar(oAux)

                Catch ex As Excepciones.Medios_BusquedaFalloEditar
                    Main.ManejarExcepcion(ex)
                Catch ex As Exception
                    Main.ManejarExcepcion(ex)
                End Try

            End If

            _llamador.CloseModalPanel(Me, DevComponents.DotNetBar.Controls.eSlideSide.Left)
            _llamador.RefrescarGrillas()
        Else
            lblMensajes.Text = "Complete todos los datos requeridos..."
        End If
    End Sub
End Class
